"""
翻译质量评估spbleu: 单一种语言无关且公开可用的固定SentencePiece子词模型对文本进行分词后的 BLEU

spBLEU程序： https://github.com/facebookresearch/fairseq/tree/nllb
NLLB 项目用到两种评估方法：chrf++ 和 spBLEU

FLORES-200 低资源和多语言机器翻译评估基准

We primarily evaluate with chrf++:
我们主要使用 chrf++进行评估
位于： sacrebleu

sacrebleu -m chrf --chrf-word-order 2 {ref_file} < {hyp_file}
and also evaluate with spBLEU:
并且使用 spBLEU 进行评估：

# tokenize with SPM
python scripts/spm_encode.py \
    --model flores_spm_model_here \
    --output_format=piece \
    --inputs={untok_hyp_file} \
    --outputs={hyp_file}

# calculate with sacrebleu
cat {hyp_file} | sacrebleu {ref_file}
"""

import sacrebleu

# 参考翻译
references = [['The dog bit the man.', 'It was not unexpected.', 'The man bit him first.']]

# 机器翻译结果
hypothesis = 'The dog bit the man.'

# 计算 BLEU 分数
score = sacrebleu.corpus_bleu(hypothesis, references)
print(score)

sp_scores = sacrebleu.sentence_bleu(hypothesis, references[0])

print(sp_scores)


